<!DOCTYPE html><html lang="zh-CN" data-theme="light"><head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0,viewport-fit=cover"><title>学习笔记</title><meta name="author" content="lzoxun"><meta name="copyright" content="lzoxun"><meta name="format-detection" content="telephone=no"><meta name="theme-color" content="#ffffff"><meta property="og:type" content="website">
<meta property="og:title" content="学习笔记">
<meta property="og:url" content="http://example.com/page/2/index.html">
<meta property="og:site_name" content="学习笔记">
<meta property="og:locale" content="zh_CN">
<meta property="og:image" content="https://i.loli.net/2021/02/24/5O1day2nriDzjSu.png">
<meta property="article:author" content="lzoxun">
<meta name="twitter:card" content="summary">
<meta name="twitter:image" content="https://i.loli.net/2021/02/24/5O1day2nriDzjSu.png"><link rel="shortcut icon" href="/img/favicon.png"><link rel="canonical" href="http://example.com/page/2/index.html"><link rel="preconnect" href="//cdn.jsdelivr.net"/><link rel="preconnect" href="//busuanzi.ibruce.info"/><link rel="stylesheet" href="/css/index.css"><link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@fortawesome/fontawesome-free/css/all.min.css" media="print" onload="this.media='all'"><link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/node-snackbar/dist/snackbar.min.css" media="print" onload="this.media='all'"><link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@fancyapps/ui/dist/fancybox/fancybox.min.css" media="print" onload="this.media='all'"><script>const GLOBAL_CONFIG = {
  root: '/',
  algolia: undefined,
  localSearch: {"path":"/search.xml","preload":true,"top_n_per_article":1,"unescape":true,"languages":{"hits_empty":"找不到您查询的内容：${query}","hits_stats":"共找到 ${hits} 篇文章"}},
  translate: {"defaultEncoding":2,"translateDelay":0,"msgToTraditionalChinese":"繁","msgToSimplifiedChinese":"簡"},
  noticeOutdate: undefined,
  highlight: {"plugin":"highlighjs","highlightCopy":true,"highlightLang":true,"highlightHeightLimit":false},
  copy: {
    success: '复制成功',
    error: '复制错误',
    noSupport: '浏览器不支持'
  },
  relativeDate: {
    homepage: false,
    post: false
  },
  runtime: '',
  dateSuffix: {
    just: '刚刚',
    min: '分钟前',
    hour: '小时前',
    day: '天前',
    month: '个月前'
  },
  copyright: undefined,
  lightbox: 'fancybox',
  Snackbar: {"chs_to_cht":"你已切换为繁体","cht_to_chs":"你已切换为简体","day_to_night":"你已切换为深色模式","night_to_day":"你已切换为浅色模式","bgLight":"#49b1f5","bgDark":"#1f1f1f","position":"bottom-left"},
  source: {
    justifiedGallery: {
      js: 'https://cdn.jsdelivr.net/npm/flickr-justified-gallery/dist/fjGallery.min.js',
      css: 'https://cdn.jsdelivr.net/npm/flickr-justified-gallery/dist/fjGallery.min.css'
    }
  },
  isPhotoFigcaption: false,
  islazyload: true,
  isAnchor: false,
  percent: {
    toc: true,
    rightside: false,
  },
  autoDarkmode: false
}</script><script id="config-diff">var GLOBAL_CONFIG_SITE = {
  title: '学习笔记',
  isPost: false,
  isHome: true,
  isHighlightShrink: false,
  isToc: false,
  postUpdate: '2023-07-22 15:54:12'
}</script><noscript><style type="text/css">
  #nav {
    opacity: 1
  }
  .justified-gallery img {
    opacity: 1
  }

  #recent-posts time,
  #post-meta time {
    display: inline !important
  }
</style></noscript><script>(win=>{
    win.saveToLocal = {
      set: function setWithExpiry(key, value, ttl) {
        if (ttl === 0) return
        const now = new Date()
        const expiryDay = ttl * 86400000
        const item = {
          value: value,
          expiry: now.getTime() + expiryDay,
        }
        localStorage.setItem(key, JSON.stringify(item))
      },

      get: function getWithExpiry(key) {
        const itemStr = localStorage.getItem(key)

        if (!itemStr) {
          return undefined
        }
        const item = JSON.parse(itemStr)
        const now = new Date()

        if (now.getTime() > item.expiry) {
          localStorage.removeItem(key)
          return undefined
        }
        return item.value
      }
    }
  
    win.getScript = url => new Promise((resolve, reject) => {
      const script = document.createElement('script')
      script.src = url
      script.async = true
      script.onerror = reject
      script.onload = script.onreadystatechange = function() {
        const loadState = this.readyState
        if (loadState && loadState !== 'loaded' && loadState !== 'complete') return
        script.onload = script.onreadystatechange = null
        resolve()
      }
      document.head.appendChild(script)
    })
  
    win.getCSS = (url,id = false) => new Promise((resolve, reject) => {
      const link = document.createElement('link')
      link.rel = 'stylesheet'
      link.href = url
      if (id) link.id = id
      link.onerror = reject
      link.onload = link.onreadystatechange = function() {
        const loadState = this.readyState
        if (loadState && loadState !== 'loaded' && loadState !== 'complete') return
        link.onload = link.onreadystatechange = null
        resolve()
      }
      document.head.appendChild(link)
    })
  
      win.activateDarkMode = function () {
        document.documentElement.setAttribute('data-theme', 'dark')
        if (document.querySelector('meta[name="theme-color"]') !== null) {
          document.querySelector('meta[name="theme-color"]').setAttribute('content', '#0d0d0d')
        }
      }
      win.activateLightMode = function () {
        document.documentElement.setAttribute('data-theme', 'light')
        if (document.querySelector('meta[name="theme-color"]') !== null) {
          document.querySelector('meta[name="theme-color"]').setAttribute('content', '#ffffff')
        }
      }
      const t = saveToLocal.get('theme')
    
          const now = new Date()
          const hour = now.getHours()
          const isNight = hour <= 6 || hour >= 18
          if (t === undefined) isNight ? activateDarkMode() : activateLightMode()
          else if (t === 'light') activateLightMode()
          else activateDarkMode()
        
      const asideStatus = saveToLocal.get('aside-status')
      if (asideStatus !== undefined) {
        if (asideStatus === 'hide') {
          document.documentElement.classList.add('hide-aside')
        } else {
          document.documentElement.classList.remove('hide-aside')
        }
      }
    
    const detectApple = () => {
      if(/iPad|iPhone|iPod|Macintosh/.test(navigator.userAgent)){
        document.documentElement.classList.add('apple')
      }
    }
    detectApple()
    })(window)</script><meta name="generator" content="Hexo 6.3.0"></head><body><div id="loading-box"><div class="loading-left-bg"></div><div class="loading-right-bg"></div><div class="spinner-box"><div class="configure-border-1"><div class="configure-core"></div></div><div class="configure-border-2"><div class="configure-core"></div></div><div class="loading-word">加载中...</div></div></div><script>(()=>{
  const $loadingBox = document.getElementById('loading-box')
  const $body = document.body
  const preloader = {
    endLoading: () => {
      $body.style.overflow = ''
      $loadingBox.classList.add('loaded')
    },
    initLoading: () => {
      $body.style.overflow = 'hidden'
      $loadingBox.classList.remove('loaded')
    }
  }

  preloader.initLoading()
  window.addEventListener('load',() => { preloader.endLoading() })

  if (false) {
    document.addEventListener('pjax:send', () => { preloader.initLoading() })
    document.addEventListener('pjax:complete', () => { preloader.endLoading() })
  }
})()</script><div id="sidebar"><div id="menu-mask"></div><div id="sidebar-menus"><div class="avatar-img is-center"><img src= "" data-lazy-src="https://i.loli.net/2021/02/24/5O1day2nriDzjSu.png" onerror="onerror=null;src='/img/friend_404.gif'" alt="avatar"/></div><div class="sidebar-site-data site-data is-center"><a href="/archives/"><div class="headline">文章</div><div class="length-num">108</div></a><a href="/tags/"><div class="headline">标签</div><div class="length-num">1</div></a><a href="/categories/"><div class="headline">分类</div><div class="length-num">0</div></a></div><hr class="custom-hr"/><div class="menus_items"><div class="menus_item"><a class="site-page" href="/"><i class="fa-fw fas fa-home"></i><span> 首页</span></a></div><div class="menus_item"><a class="site-page" href="/archives/"><i class="fa-fw fas fa-archive"></i><span> 归档</span></a></div><div class="menus_item"><a class="site-page" href="/tags/"><i class="fa-fw fas fa-tags"></i><span> 标签</span></a></div></div></div></div><div class="page" id="body-wrap"><header class="full_page" id="page-header" style="background-image: url('/img/bg.jpg')"><nav id="nav"><span id="blog-info"><a href="/" title="学习笔记"><span class="site-name">学习笔记</span></a></span><div id="menus"><div id="search-button"><a class="site-page social-icon search" href="javascript:void(0);"><i class="fas fa-search fa-fw"></i><span> 搜索</span></a></div><div class="menus_items"><div class="menus_item"><a class="site-page" href="/"><i class="fa-fw fas fa-home"></i><span> 首页</span></a></div><div class="menus_item"><a class="site-page" href="/archives/"><i class="fa-fw fas fa-archive"></i><span> 归档</span></a></div><div class="menus_item"><a class="site-page" href="/tags/"><i class="fa-fw fas fa-tags"></i><span> 标签</span></a></div></div><div id="toggle-menu"><a class="site-page" href="javascript:void(0);"><i class="fas fa-bars fa-fw"></i></a></div></div></nav><div id="site-info"><h1 id="site-title">学习笔记</h1><div id="site-subtitle"><span id="subtitle"></span></div><div id="site_social_icons"><a class="social-icon" href="https://github.com/liaozhongxun" target="_blank" title="Github"><i class="fab fa-github" style="color: #24292e;"></i></a><a class="social-icon" href="mailto:869664233@gmail.com" target="_blank" title="Email"><i class="fas fa-envelope" style="color: #4a7dbe;"></i></a></div></div><div id="scroll-down"><i class="fas fa-angle-down scroll-down-effects"></i></div></header><main class="layout" id="content-inner"><div class="recent-posts" id="recent-posts"><div class="recent-post-item"><div class="recent-post-info no-cover"><a class="article-title" href="/2023/07/22/web/web-diskapp-electron/" title="electron">electron</a><div class="article-meta-wrap"><span class="post-meta-date"><i class="far fa-calendar-alt"></i><span class="article-meta-label">发表于</span><time datetime="2023-07-22T07:14:09.698Z" title="发表于 2023-07-22 15:14:09">2023-07-22</time></span></div><div class="content">electron 实现前端代码构建桌面应用程序
</div></div></div><div class="recent-post-item"><div class="recent-post-info no-cover"><a class="article-title" href="/2023/07/22/web/web-css/" title="css">css</a><div class="article-meta-wrap"><span class="post-meta-date"><i class="far fa-calendar-alt"></i><span class="article-meta-label">发表于</span><time datetime="2023-07-22T07:14:09.698Z" title="发表于 2023-07-22 15:14:09">2023-07-22</time></span></div><div class="content">CSS
  层叠样式表 , 给标签添加样式

内联样式 内部样式 link href 外部样式 选择器 布局 定位 文档流 伪类 伪元素  单位 继承 盒子模型 图标 字体图标
官方文档   MDN文档  兼容性
外部样式12/* link href 引入到 html*/@import url(&quot;xxxx.css&quot;); /*css 文件 引入其他样式文件*/



CSS 属性一些属性
定位(position) 和布局(Layout)

展示(display:none 不占位置)和可见(Visivbility:none 任占据位置)

盒子模型

背景设置

颜色的表示方法 （red 、#f00、 RGB(255,0,0)、RGBA）
background-color 设置背景色 ,  color设置的是前景色，下划线删除线的颜色也会改变


字体、文本

text-decoration 装饰线

text-align 设置 行内元素或内容相对 块父元素的 水平对齐方式，块元素居中需要 margin 0 auto

justify 两端对齐，中间平均分配 (最后一行 ...</div></div></div><div class="recent-post-item"><div class="recent-post-info no-cover"><a class="article-title" href="/2023/07/22/web/web-html/" title="html">html</a><div class="article-meta-wrap"><span class="post-meta-date"><i class="far fa-calendar-alt"></i><span class="article-meta-label">发表于</span><time datetime="2023-07-22T07:14:09.698Z" title="发表于 2023-07-22 15:14:09">2023-07-22</time></span></div><div class="content">HTML
  超文本标记语言 ( Hyper Text Markup Language )


构建网页的技术，框架结构, 以.htm/.html 结尾的文件 (早期 win95 那种系统扩展名不能超过三个字符)
网页由标签注册，标签和内容组成的部分称为元素 
MDN HTML 所有元素

文档标准结构
文档类型声明 

H5的申明&lt;!DOCTYPE html&gt; 让浏览器用H5标准去解析，必须放在最前面，不能省略
其他还有 html4 、XHTML(语法严格)


HTML结构  html&gt;(head&gt;title&#123;网页标题&#125;)+body&gt;div&#123;内容 $&#125;*5



元素

  元素由 标签 属性 内容 组成

元素标签
标签：不区分大小写，建议都小写 &lt;div&gt;

单标签( img 、image、meta、… )

&lt;img /&gt;  斜杆是以前xhtml那种早期版本固定单标签需要加上的，限制不需要了



元素属性
公共属性 class id style

data-* HTML5新增的一个 ...</div></div></div><div class="recent-post-item"><div class="recent-post-info no-cover"><a class="article-title" href="/2023/07/22/web/web-script-es6/" title="ECMAScript">ECMAScript</a><div class="article-meta-wrap"><span class="post-meta-date"><i class="far fa-calendar-alt"></i><span class="article-meta-label">发表于</span><time datetime="2023-07-22T07:14:09.698Z" title="发表于 2023-07-22 15:14:09">2023-07-22</time></span></div><div class="content">
变量、复制let&#x2F;const
let 相对 var

没有变量提升，不能先使用后定义、
不能重复定义
存在块级作用域


优先使用 const，必须有初始化值，除非值一定需要改变

const 只是指向的对象不能修改，可以改对象属性
相当于只能修改内容，不能修改内存地址


let&#x2F;const 有 if 和 for 的块级作用域

作用域:变量在什么范围内是可用的

块级作用域:{}、if(){}、for(){}…
暂时性死区 TDZ(如果块中定义了 let 或 const，区块中对它们声明的变量形成封闭作用域，即使外面有声明同样的变量，快内申明之前用都报错)
即使有块级作用域，外面 let 过的变量，{}内部也不能重复定义,外面 var 的，就可以
同一个块内，无论 let 还是 var 都不能定义相同的变量


es5 以前 var if和for都没有块级作用域，很多东西都需要借助function的作用域来解决问题
var for 循环的异常
就是因为 var 没有块级作用域， 变量 i 一直被改变，不会保存在作用域中,事件操作用的时候 i 就是最后一次的值了 ...</div></div></div><div class="recent-post-item"><div class="recent-post-info no-cover"><a class="article-title" href="/2023/07/22/web/web-script-ts/" title="TypeScript 基础">TypeScript 基础</a><div class="article-meta-wrap"><span class="post-meta-date"><i class="far fa-calendar-alt"></i><span class="article-meta-label">发表于</span><time datetime="2023-07-22T07:14:09.698Z" title="发表于 2023-07-22 15:14:09">2023-07-22</time></span></div><div class="content">JavaScript 的超级，在js es6 es6以上的js语法这个添加了 接口(interfaces)、强类型(Strongly Typed)、泛型(Generics)… 
安装1234567891011npm install -g typescript# 查看版本tsc -vtsc script.ts # 编译生成js文件tsc --init # 生成ts配置文件# vscode直接右键运行ts文件npm install -g ts-node# ts-node 需要依赖  tslib @types/node 两个包npm install tslib @types/node -gts-node script.ts # 直接运行 script.ts

  解决了JavaScript类型缺失问题，错误发现的越早越好，开发阶段对类型进行校验

编译手动直接编译1tsc file.ts

vscode自动编译12345678910111213# 1. 项目目录生成配置文件 tsc --init# 2. 修改配置文件参数 如:&quot;strict&quot;: false &quot;o ...</div></div></div><div class="recent-post-item"><div class="recent-post-info no-cover"><a class="article-title" href="/2023/07/22/web/web-script-js/" title="JavaScript 基础">JavaScript 基础</a><div class="article-meta-wrap"><span class="post-meta-date"><i class="far fa-calendar-alt"></i><span class="article-meta-label">发表于</span><time datetime="2023-07-22T07:14:09.698Z" title="发表于 2023-07-22 15:14:09">2023-07-22</time></span></div><div class="content">JS 基础（ECMSscript）概念认识 JavaScript

JS 的作用是给浏览器指令，负责和浏览器进行沟通
JS 是一门编程语言，与计算机交流的计算机语言
JS 和 C、java、Python 等一样是高级语言
JS 基于浏览器，一些内置方法源码需要找JS引擎
ECMA




编程语言的历史
阶段一:机器语言，由二进制 0101010 组成
阶段二:汇编语言，用符号来代替，010101 难以记忆的代码
阶段三:高级语言，接近自然语言，符合我们的思维方式,JavaScript算是一个

JavaScript 的历史
1995 浏览器两大厂商网景公司与微软
网景
网景招募Brendan Eich,为了前端表达验证，10 写出了最开始的LiveScript(js)
java 出来后很火爆，就把LiveScript改名JavaScript


微软
微软开始用的是JScript
所以为了适配需要两份代码


时间轴
1996.11，网景公司向ECMA（欧洲计算机制造商协会）提交申请语言标准
1997.06，ECMA 以 JavaScript 为基础指定了 ECMAScript 标准 ...</div></div></div><div class="recent-post-item"><div class="recent-post-info no-cover"><a class="article-title" href="/2023/07/22/web/web-admin/" title="后台管理系统">后台管理系统</a><div class="article-meta-wrap"><span class="post-meta-date"><i class="far fa-calendar-alt"></i><span class="article-meta-label">发表于</span><time datetime="2023-07-22T07:14:09.697Z" title="发表于 2023-07-22 15:14:09">2023-07-22</time></span></div><div class="content">管理系统的定位核心
网上流行非官方词语大前端


前端
移动端IOS&#x2F;android开发
桌面端（electron 只要能跑node的平台都可以使用electron开发的桌面程序）
其他平台(穿戴设备、车载系统)&#x2F;VR&#x2F;AR&#x2F;…..
web3方向


都是与用户交互的过程中，产生各种各样的数据，都通过网络请求方式汇总到后端处理储存


有时这些数据需要人为的去控制管理，就需要通过后台管理系统 让管理员等不同权限的角色进行数据操作


总的来说后台管理系统就是不同角色人群对数据库数据的增删改查的操作、数据报表统计展示、产品的配置操作

项目创建于配置创建项目
  npm init vue@latest 内部使用 create-vue 创建vite版本脚手架


项目名称、TypeScript、JSX、路由、Pinia、单元测试、端对端测试、ESLint语法检测、Prettier格式化
</div></div></div><div class="recent-post-item"><div class="recent-post-info no-cover"><a class="article-title" href="/2023/07/22/web/web-app-uniapp-mumu/" title="mumu 手机模拟器】">mumu 手机模拟器】</a><div class="article-meta-wrap"><span class="post-meta-date"><i class="far fa-calendar-alt"></i><span class="article-meta-label">发表于</span><time datetime="2023-07-22T07:14:09.697Z" title="发表于 2023-07-22 15:14:09">2023-07-22</time></span></div><div class="content">下载
安装
提示关闭 Hyper-V （WSL2 就没了 管理员身份从Pollshell 运行 bcdedit /set hypervisorlaunchtype auto 然后重启）
将Hbuilder X 的项目跑到 mumu模拟器 或 手机中
先设置 adb调试桥 命令行工具
连接手机设备
安装App
调试大于log
热更新
………..





adb调试桥方式一、直接使用 Hbuilder X 自带的 adb 工具

找到 HBuilderX\plugins\launcher\tools\adbs   (需要安装真机App运行插件就有)  MAC下可能位置会不一样，
进入目录通过 adb 指令 ./adb connect 127.0.0.1:7555 连接 mumu模拟器（mumu 默认端口 7555）
查看连接结果 ./adb devices 
打开Hbuilder X， 运行到手机或模拟器 &gt; 运行到Android App 基座，就会检索出连接成功的设备 
成功后手机或模拟器桌面就会多出运行程序的图标

方式二、自己下载adb工具包

外部下载地址
HBuilder ...</div></div></div><div class="recent-post-item"><div class="recent-post-info no-cover"><a class="article-title" href="/2023/07/22/web/web-app-uniapp-2023/" title="uni-app 2023">uni-app 2023</a><div class="article-meta-wrap"><span class="post-meta-date"><i class="far fa-calendar-alt"></i><span class="article-meta-label">发表于</span><time datetime="2023-07-22T07:14:09.697Z" title="发表于 2023-07-22 15:14:09">2023-07-22</time></span></div><div class="content">
uni-app基于vue和微信小程序, 一套代码可以发布到ios、Android、h5、以及各种小程序平台

开启uniapp原生开发：早期移动端主要 有 IOS 和 Android 两大平台开发原生APP

优点：原生APP 体验、性能、兼容性都非常好，并可以非常方便使用硬件设备，如摄像头
缺点：两个需要单独开发，消耗时间和成本，上线周期繁琐，适合大公司

跨平台开发

优点：一套代码，多端运行，用js实现一套代码，打包生成到各个平台（IOS、Android、各种小程序、H5应用）
成本低、周期短


缺点：只适合根系统交互少，页面不太复杂的场景，硬件支持相对不好（不适合做高性能、复制用户体验，定制高的程序）

跨平台发展史

&lt;2009：   HTML+CSS+JS实现移动端开发
2009-2014：PhoneGap、Cordova等框架啊
2015：ReactNative
2016：阿里开源 Weex
2017：谷歌公布了 Flutter 需要掌握 Dart  （移动端和PC端都支持）
2017：微信小程序、uni-app（底层利用weex）、Taro （底层基于 Rea ...</div></div></div><div class="recent-post-item"><div class="recent-post-info no-cover"><a class="article-title" href="/2023/07/22/web/web-app-uniapp/" title="uni-app">uni-app</a><div class="article-meta-wrap"><span class="post-meta-date"><i class="far fa-calendar-alt"></i><span class="article-meta-label">发表于</span><time datetime="2023-07-22T07:14:09.697Z" title="发表于 2023-07-22 15:14:09">2023-07-22</time></span></div><div class="content">
uni-app基于vue和微信小程序, 一套代码可以发布到ios、Android、h5、以及各种小程序平台

开启uniapp原生开发方式ios  -&gt;  采用ObjectC、Swift语言安卓 -&gt;  Java、Kotlin语言如果企业主要业务在app上，需要更好的用户体验，很多调用硬件api功能，且不惜成本与时间，就可以用原生来开发如果需求只是查找或者是浏览比较基础的功能，就可以用web paa 混合开发
对比uniapp优点1、官方指定方案更受认可2、性能以及用户体验更好3、可以直接调用硬件能力缺点1、开发成本高2、开发周期长3、ios与安卓需要分开开发与维护
常见跨端开发方式Vue技术栈（Uniapp、Weex）React技术栈（ReactNative、Taro）Flutter 这个需要Dart语言，不是通过js开发的
环境搭建
安装编辑器HbuilderX 官网

运行运行到小程序d -&gt; 微信开发者工具第一次要配置安装目录,百度等也要先配置好开发者工具安装目录配置好后，开发这者工具设置-&gt;安全-&gt;端口打开才能打开
运行到手机需要连接数据线
规 ...</div></div></div><nav id="pagination"><div class="pagination"><a class="extend prev" rel="prev" href="/"><i class="fas fa-chevron-left fa-fw"></i></a><a class="page-number" href="/">1</a><span class="page-number current">2</span><a class="page-number" href="/page/3/#content-inner">3</a><span class="space">&hellip;</span><a class="page-number" href="/page/11/#content-inner">11</a><a class="extend next" rel="next" href="/page/3/#content-inner"><i class="fas fa-chevron-right fa-fw"></i></a></div></nav></div><div class="aside-content" id="aside-content"><div class="card-widget card-info"><div class="is-center"><div class="avatar-img"><img src= "" data-lazy-src="https://i.loli.net/2021/02/24/5O1day2nriDzjSu.png" onerror="this.onerror=null;this.src='/img/friend_404.gif'" alt="avatar"/></div><div class="author-info__name">lzoxun</div><div class="author-info__description"></div></div><div class="card-info-data site-data is-center"><a href="/archives/"><div class="headline">文章</div><div class="length-num">108</div></a><a href="/tags/"><div class="headline">标签</div><div class="length-num">1</div></a><a href="/categories/"><div class="headline">分类</div><div class="length-num">0</div></a></div><a id="card-info-btn" target="_blank" rel="noopener" href="https://github.com/liaozhongxun"><i class="fab fa-github"></i><span>Follow Me</span></a><div class="card-info-social-icons is-center"><a class="social-icon" href="https://github.com/liaozhongxun" target="_blank" title="Github"><i class="fab fa-github" style="color: #24292e;"></i></a><a class="social-icon" href="mailto:869664233@gmail.com" target="_blank" title="Email"><i class="fas fa-envelope" style="color: #4a7dbe;"></i></a></div></div><div class="card-widget card-announcement"><div class="item-headline"><i class="fas fa-bullhorn fa-shake"></i><span>公告</span></div><div class="announcement_content">这是我的文档</div></div><div class="sticky_layout"><div class="card-widget card-recent-post"><div class="item-headline"><i class="fas fa-history"></i><span>最新文章</span></div><div class="aside-list"><div class="aside-list-item no-cover"><div class="content"><a class="title" href="/2023/07/22/window/win-11/" title="win 11 set">win 11 set</a><time datetime="2023-07-22T07:14:09.700Z" title="发表于 2023-07-22 15:14:09">2023-07-22</time></div></div><div class="aside-list-item no-cover"><div class="content"><a class="title" href="/2023/07/22/window/win-gitbash/" title="git bash">git bash</a><time datetime="2023-07-22T07:14:09.700Z" title="发表于 2023-07-22 15:14:09">2023-07-22</time></div></div><div class="aside-list-item no-cover"><div class="content"><a class="title" href="/2023/07/22/window/win-wsl/" title="wsl">wsl</a><time datetime="2023-07-22T07:14:09.700Z" title="发表于 2023-07-22 15:14:09">2023-07-22</time></div></div><div class="aside-list-item no-cover"><div class="content"><a class="title" href="/2023/07/22/window/win-main/" title="window">window</a><time datetime="2023-07-22T07:14:09.700Z" title="发表于 2023-07-22 15:14:09">2023-07-22</time></div></div><div class="aside-list-item no-cover"><div class="content"><a class="title" href="/2023/07/22/web/%E5%85%BC%E5%AE%B9%E9%97%AE%E9%A2%98/" title="兼容问题">兼容问题</a><time datetime="2023-07-22T07:14:09.699Z" title="发表于 2023-07-22 15:14:09">2023-07-22</time></div></div></div></div><div class="card-widget card-tags"><div class="item-headline"><i class="fas fa-tags"></i><span>标签</span></div><div class="card-tag-cloud"><a href="/tags/%E6%A0%87%E8%AE%B0%E8%AF%AD%E8%A8%80/" style="font-size: 1.1em; color: #999">标记语言</a></div></div><div class="card-widget card-archives"><div class="item-headline"><i class="fas fa-archive"></i><span>归档</span></div><ul class="card-archive-list"><li class="card-archive-list-item"><a class="card-archive-list-link" href="/archives/2023/07/"><span class="card-archive-list-date">七月 2023</span><span class="card-archive-list-count">106</span></a></li><li class="card-archive-list-item"><a class="card-archive-list-link" href="/archives/2016/12/"><span class="card-archive-list-date">十二月 2016</span><span class="card-archive-list-count">2</span></a></li></ul></div><div class="card-widget card-webinfo"><div class="item-headline"><i class="fas fa-chart-line"></i><span>网站资讯</span></div><div class="webinfo"><div class="webinfo-item"><div class="item-name">文章数目 :</div><div class="item-count">108</div></div><div class="webinfo-item"><div class="item-name">本站访客数 :</div><div class="item-count" id="busuanzi_value_site_uv"><i class="fa-solid fa-spinner fa-spin"></i></div></div><div class="webinfo-item"><div class="item-name">本站总访问量 :</div><div class="item-count" id="busuanzi_value_site_pv"><i class="fa-solid fa-spinner fa-spin"></i></div></div><div class="webinfo-item"><div class="item-name">最后更新时间 :</div><div class="item-count" id="last-push-date" data-lastPushDate="2023-07-22T07:54:12.682Z"><i class="fa-solid fa-spinner fa-spin"></i></div></div></div></div></div></div></main><footer id="footer"><div id="footer-wrap"><div class="copyright">&copy;2020 - 2023 By lzoxun</div><div class="framework-info"><span>框架 </span><a target="_blank" rel="noopener" href="https://hexo.io">Hexo</a><span class="footer-separator">|</span><span>主题 </span><a target="_blank" rel="noopener" href="https://github.com/jerryc127/hexo-theme-butterfly">Butterfly</a></div></div></footer></div><div id="rightside"><div id="rightside-config-hide"><button id="translateLink" type="button" title="简繁转换">繁</button><button id="darkmode" type="button" title="浅色和深色模式转换"><i class="fas fa-adjust"></i></button><button id="hide-aside-btn" type="button" title="单栏和双栏切换"><i class="fas fa-arrows-alt-h"></i></button></div><div id="rightside-config-show"><button id="rightside_config" type="button" title="设置"><i class="fas fa-cog fa-spin"></i></button><button id="go-up" type="button" title="回到顶部"><span class="scroll-percent"></span><i class="fas fa-arrow-up"></i></button></div></div><div><script src="/js/utils.js"></script><script src="/js/main.js"></script><script src="/js/tw_cn.js"></script><script src="https://cdn.jsdelivr.net/npm/@fancyapps/ui/dist/fancybox/fancybox.umd.min.js"></script><script src="https://cdn.jsdelivr.net/npm/instant.page/instantpage.min.js" type="module"></script><script src="https://cdn.jsdelivr.net/npm/vanilla-lazyload/dist/lazyload.iife.min.js"></script><script src="https://cdn.jsdelivr.net/npm/node-snackbar/dist/snackbar.min.js"></script><script>function panguFn () {
  if (typeof pangu === 'object') pangu.autoSpacingPage()
  else {
    getScript('https://cdn.jsdelivr.net/npm/pangu/dist/browser/pangu.min.js')
      .then(() => {
        pangu.autoSpacingPage()
      })
  }
}

function panguInit () {
  if (false){
    GLOBAL_CONFIG_SITE.isPost && panguFn()
  } else {
    panguFn()
  }
}

document.addEventListener('DOMContentLoaded', panguInit)</script><div class="js-pjax"><script>window.typedJSFn = {
  init: (str) => {
    window.typed = new Typed('#subtitle', Object.assign({
      strings: str,
      startDelay: 300,
      typeSpeed: 150,
      loop: true,
      backSpeed: 50,
    }, null))
  },
  run: (subtitleType) => {
    if (true) {
      if (typeof Typed === 'function') {
        subtitleType()
      } else {
        getScript('https://cdn.jsdelivr.net/npm/typed.js/dist/typed.umd.min.js').then(subtitleType)
      }
    } else {
      subtitleType()
    }
  }
}
</script><script>function subtitleType () {
  fetch('https://v1.hitokoto.cn')
    .then(response => response.json())
    .then(data => {
      if (true) {
        const from = '出自 ' + data.from
        const sub = []
        sub.unshift(data.hitokoto, from)
        typedJSFn.init(sub)
      } else {
        document.getElementById('subtitle').textContent = data.hitokoto
      }
    })
}
typedJSFn.run(subtitleType)
</script></div><script id="canvas_nest" defer="defer" color="0,0,255" opacity="0.7" zIndex="-1" count="99" mobile="false" src="https://cdn.jsdelivr.net/npm/butterfly-extsrc/dist/canvas-nest.min.js"></script><script async data-pjax src="//busuanzi.ibruce.info/busuanzi/2.3/busuanzi.pure.mini.js"></script><div id="local-search"><div class="search-dialog"><nav class="search-nav"><span class="search-dialog-title">搜索</span><span id="loading-status"></span><button class="search-close-button"><i class="fas fa-times"></i></button></nav><div class="is-center" id="loading-database"><i class="fas fa-spinner fa-pulse"></i><span>  数据库加载中</span></div><div class="search-wrap"><div id="local-search-input"><div class="local-search-box"><input class="local-search-box--input" placeholder="搜索文章" type="text"/></div></div><hr/><div class="no-result" id="local-search-results"></div><div id="local-search-stats-wrap"></div></div></div><div id="search-mask"></div><script src="/js/search/local-search.js"></script></div></div><script src="/live2dw/lib/L2Dwidget.min.js?094cbace49a39548bed64abff5988b05"></script><script>L2Dwidget.init({"pluginRootPath":"live2dw/","pluginJsPath":"lib/","pluginModelPath":"assets/","tagMode":false,"log":false,"model":{"jsonPath":"/live2dw/assets/haruto.model.json"},"display":{"position":"right","width":100,"height":200,"right":300},"mobile":{"show":true}});</script></body></html>